Completed
Push — master ( 57c78c...4fcad4 )
by Muhammad Dyas
15s queued 13s
created

api.ts ➔ gAuth   A

Complexity

Conditions 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 15
c 0
b 0
f 0
rs 9.95
cc 1
1
import {google} from 'googleapis';
2
3
/**
4
 * Create google api credentials
5
 *
6
 * @returns {object} google.chat
7
 */
8
function gAuth() {
9
  // Use default credentials (service account)
10
  const credentials = new google.auth.GoogleAuth({
11
    // keyFile: path.join(__dirname, '../../tests/creds.json'),
12
    scopes: ['https://www.googleapis.com/auth/chat.bot'],
13
  });
14
  return google.chat({
15
    version: 'v1',
16
    auth: credentials,
17
  });
18
}
19
20
/**
21
 * Call Google API using default credentials (service account)
22
 *
23
 * @param {string} action - request action(create,update,get,delete)
24
 * @param {object} request - request body
25
 * @returns {object} Response from google api
26
 */
27
export async function callMessageApi(action: string, request: object) {
28
  const chatApi = gAuth();
29
  let response;
30
31
  try {
32
    if (action === 'create') {
33
      response = await chatApi.spaces.messages.create(request);
34
    } else if (action === 'update') {
35
      response = await chatApi.spaces.messages.update(request);
36
    } else if (action === 'get') {
37
      response = await chatApi.spaces.messages.get(request);
38
    }
39
  } catch (error) {
40
    console.error('Error:', action, JSON.stringify(request), response);
41
    throw new Error(error.toString());
42
  }
43
44
  return response;
45
}
46